//
//  HMStatusListViewModel.swift
//  Weibo12
//
//  Created by HM on 15/12/31.
//  Copyright © 2015年 itheima. All rights reserved.
//  首页的 tableView 的视图模型，tableView 要的数据，就从当前类(HMStatusListViewModel)里面提供

import UIKit

class HMStatusListViewModel: NSObject {
    
    // 视图模型里面引用的数据
    var statuses: [HMStatusViewModel]?
    
    func loadData(completion: (isSuccessed: Bool)->()){
        // 定义请求地址与参数
        let urlString = "https://api.weibo.com/2/statuses/friends_timeline.json"
        
        let params = [
            "access_token": HMUserAccountViewModel.sharedViewModel.accessToken!,
        ]
        
        // 发送请求
        HMNetworkTools.sharedTools.request(urlString: urlString, parameters: params) { (response, error) -> () in
            
            if error != nil {
                print(error)
                // 请求失败，回调：不成功
                completion(isSuccessed: false)
                return
            }
            
            guard let responseDict = response as? [String: AnyObject] else {
                completion(isSuccessed: false)
                print("返回数据不是字典")
                return
            }
            
            // 字典转模型
            let statusDicts = responseDict["statuses"]! as! [[String: AnyObject]]
            // 定义监听数据，保存转成功的模型
            var tempArray: [HMStatusViewModel] = [HMStatusViewModel]()
            
            // 遍历字典转模型
            for dict in statusDicts {
                let status = HMStatus(dict: dict)
                
                // 初始化视图模型
                let statusViewModel = HMStatusViewModel()
                // 设置值
                statusViewModel.status = status
                // 把模型添加到数组里面
                tempArray.append(statusViewModel)
            }
            
            // 赋值
            self.statuses = tempArray
            
            // 刷新数据
            completion(isSuccessed: true)
        }
    }
}
